﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using RN.Componentes;
using RN.Entidades;

public partial class Formularios_TipoResponsable : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CargarGrid();
        }
    }

    public void CargarGrid()
    {
        List<Tiporesponsable> obj = CTipoResponsables.Traer();
        grvTresponsables.DataSource = obj;
        grvTresponsables.DataBind();
    }
    protected void btnRegistrar_Click(object sender, EventArgs e)
    {
        Tiporesponsable tre = new Tiporesponsable();

        tre.Nombrecargo = txtNombre.Text;
        tre.Descripcion = txtDescripcion.Text;

        bool cotre = CTipoResponsables.Insertar(tre);

        if (cotre)
        {
            lblMensaje.Text = "El tipo de responsable fue registrado correctamente";
            ResetFormControlValues(txtID);
            ResetFormControlValues(txtNombre);
            ResetFormControlValues(txtDescripcion);
            CargarGrid();
        }
        else
        {
            lblMensaje.Text = "El tipo de responsable no fue registrado correctamente";
        }
    }

    protected void grvTresponsables_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        int id = Convert.ToInt32(e.CommandArgument);

        if (e.CommandName == "Seleccionar")
        {
            Tiporesponsable tre = CTipoResponsables.TraerXId(id);

            txtID.Text = tre.Codigo.ToString();
            txtNombre.Text = tre.Nombrecargo;
            txtDescripcion.Text = tre.Descripcion;
        }
        else
        {
            if (e.CommandName == "Eliminar")
            {
                bool cotre = CTipoResponsables.EliminarTiporesponsable(id);
                if (cotre)
                {
                    lblMensaje.Text = "El tipo de responsable fue eliminado correctamente";
                    CargarGrid();
                }
                else
                {
                    lblMensaje.Text = "El tipo de responsable no fue eliminado correctamente";
                }
            }
        }
    }


    protected void btnModificar_Click(object sender, EventArgs e)
    {
        Familia fam = new Familia();

        fam.Codigo = Convert.ToInt32(txtID.Text);
        fam.Nombre = txtNombre.Text;
        fam.Descripcion = txtDescripcion.Text;

        bool cofam = CFamilia.ActualizarFamilia(fam);

        if (cofam)
        {
            lblMensaje.Text = "El tipo de responsable fue modificado correctamente";
            ResetFormControlValues(txtID);
            ResetFormControlValues(txtNombre);
            CargarGrid();
        }
        else
        {
            lblMensaje.Text = "El tipo de responsable no fue modificado correctamente";
        }
    }

    public void ResetFormControlValues(Control parent)
    {
        foreach (Control c in parent.Controls)
        {
            if (c.Controls.Count > 0)
            {
                ResetFormControlValues(c);
            }
            else
            {
                switch (c.GetType().ToString())
                {
                    case "System.Web.UI.WebControls.TextBox":
                        ((TextBox)c).Text = "";
                        break;
                    case "System.Web.UI.WebControls.CheckBox":
                        ((CheckBox)c).Checked = false;
                        break;
                    case "System.Web.UI.WebControls.RadioButton":
                        ((RadioButton)c).Checked = false;
                        break;
                }
            }
        }
    }
}